|
|
3#

楼主 |
发表于 2010-12-27 08:29:49
|
只看该作者
本帖最后由 yangqs 于 2010-12-28 09:08 编辑
************************************************
************************************************
************************************************
指挥官的设定:
为了大家看完之后不至于思维混乱,写在这里
AI个性详细定义,上面只是集体的去调用AI,但是不要忘了,即便是盟军,还有利赛特,吉尔利斯等指挥官,他们各有不同,这样就需要调用AIPersonalityDefinition.xml(AI个性详细定义)
调用方式有些特殊,游戏限制住了这方面的修改(新加的阵营没有限制),所以需要重新定义
- <AIPersonalityDefinition
- id="4AlliedBalanced"新加的AI个性
- PersonalityType="1AlliedBalanced">
- <!--指定为原来游戏的“温轮”指挥官,和一楼一样,添加或去掉一些模块-->
- <StrategicState
- id="BalancedDefense" 添加防御模块,这里指战机的防御
- State="BalancedDefense"
- Difficulty="EASY MEDIUM HARD BRUTAL"/>
复制代码
接下来……
- <!--打开步骤 开始-->
- <OpeningMove
- Name="AlliedStandard_EASY"
- Weight="100%" 权重
- Difficulty="EASY">仅适用于“普通进攻”的简单敌人
- <Heuristic>
- <athToTargetHeuristic
- PathExists="true" 想走过场一样,比如先建电厂,再建战车工厂
- ObjectTypeToUseForTest="SovietAntiInfantryInfantry" LocomotorConditionToUseForTest="NORMAL" />
- </Heuristic>
- </OpeningMove>
复制代码
在剧变的AI里我看只是重抄了一遍sdk,把温轮所需要的OpeningMove写进来
=====================================
继续写,添加这个指挥官特有的EVA声音,就是在游戏左上角时(和你是盟友),指挥官的回复
- <FeedbackEntry
- FeedbackKey="PlanAttackBeaconPlaced" 进攻指令
- EvaEvent="AlliedCoopWarrenPlanAttack"
- FeedbackTo="ALLIES"/> 盟军有效
复制代码
添加视频
- <FeedbackEntry
- FeedbackKey="StartGame"
- Video="AWAGR1"
- FeedbackTo="ALLIES"/>
复制代码
可以添加几个<FeedbackEntry/>,视频可以AWAGR1、 AWAGR2随机出现
注意FeedbackKey=的值
StartGame他和你是盟友,游戏开始时的视频
InTrouble他和你是盟友,遇到麻烦时的视频
Lost他和你是盟友,战败时的视频
FirstSeen他和你是敌人,游戏开始时,第一次探测到他的部队的视频
DefeatedByLocalPlayer他和你是敌人,游戏结束时的咒骂视频(你赢了)
DefeatedLocalPlayer他和你是敌人,游戏结束时的嘲笑视频(你输了)
-
- </AIPersonalityDefinition>
复制代码
指挥官模块完成
=====================================
越过声音和视频,刚才的<OpeningMove>只是被调用,里面到底写了写什么呢?
用AlliedStandard_EASY和AlliedStandard_BRUTAL举例
简单敌人
- <SkirmishOpeningMove
- id="AlliedStandard_EASY"
- Side="PlayerTemplate:Allies">盟军有效
- <Order Time="10s" Build="AlliedBarracks" />第一时间点10秒建造一个兵营
- <Order Time="30s" Build="AlliedPowerPlant" />第二时间点建造一个电厂
- <Order Time="50s" Build="AlliedRefinery" />第三时间点建造一个矿场
- <Order Build="AlliedAntiInfantryInfantry" />第四时间点训练3个大兵
- <Order Build="AlliedAntiInfantryInfantry" />
- <Order Build="AlliedAntiInfantryInfantry" />
- <Order Time="80s"/><!--80秒内完成-->
- <Order Build="AlliedAntiInfantryInfantry" />
- <Order Build="AlliedAntiInfantryInfantry" />
- <Order Build="AlliedAntiInfantryInfantry" />
- <Order Time="110s" Build="AlliedPowerPlant" />
- <!--……略-->
- </SkirmishOpeningMove>
复制代码
冷酷敌人,写法比简单敌人还简单
- <SkirmishOpeningMove
- id="AlliedStandard_BRUTAL"
- Side="PlayerTemplate:Allies">盟军有效
- <Order Build="AlliedBarracks" />第一时间点建造一个兵营
- <Order Time="10s" Account="PRODUCTION" Deposit="4000" />
- <!--如果有4000押金,将10秒后训练产品,这里指的是步兵-->
- <Order Build="AlliedPowerPlant" /><!--没有时间概念,只是抓紧时间的向下建造-->
- <Order Build="AlliedRefinery" />
- <Order Build="AlliedRefinery" />
- <Order Build="AlliedPowerPlant" />
- <Order Build="AlliedWarFactory" />
- <Order Build="AlliedAntiInfantryVehicle_Ground" /><!--从战车工厂出来激流ACV-->
- <Order Build="AlliedAntiInfantryVehicle_Ground" />
- <Order Build="AlliedAntiInfantryVehicle_Ground" />
- <Order Time="120s" />
- </SkirmishOpeningMove>
复制代码
代码部分完成,可以看出来,AI能否制造出你新加的单位,和AI难度有关,也和AI指挥官有关,也和地图有关(电脑首先判断是海战还是陆战),当然《剧变》只是宏观的加入新单位,没有细节到每个指挥官如何去添加他们。
指挥官吉尔利斯会多一层判断,判断对手是不是帝国,他甚至有早期都不建造战车工厂,因为他为了加快出飞机的速度。这需要修改OpeningMove。
在sdk里面,很容易找到<SkirmishOpeningMove/>,在SkirmishAI\OpeningMoves文件夹里。
只是添加有些麻烦,被游戏调用过的模块不能修改,添加一个新的,替换吧
其他代码可以参考bibber的开源代码 |
|